/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

grammar logprop;


//PARSER

formulas: formula+;

formula : proposicion PUNTOCOMA;

proposicion : PARIZ proposicion PARDE                   # parentesis
            | NO proposicion                            # negacion
            | proposicion Y proposicion                 # conjuncion
            | proposicion O proposicion                 # disyuncion
            | proposicion SI<assoc=right> proposicion   # condicion
            | proposicion SISOLOSI proposicion          # bicondicion
            | termino                                   # termino_final
            ;

termino : BOOLEANO                                         # booleano
        | LITERAL                                          # literal
        ;


//LEXER

PUNTOCOMA: ';';
PARIZ : '(';
PARDE : ')';
NO : 'no' | 'NO';
Y : 'y' | 'Y';
O : 'o' | 'O';
SI : 'si' | 'SI';
SISOLOSI : 'sisolosi' | 'SISOLOSI';
BOOLEANO : 'true' | 'TRUE' | 'false' | 'FALSE';
LITERAL : ('a'..'z'|'A'..'Z')('a'..'z'|'A'..'Z'|'0'..'9')*;
WS     : [ \t\n\r]+ -> skip ;




                                  
